//
//  HWNetworkModule.h
//  HWNetworkModule
//
//  Created by yehuawei on 2018/11/21.
//  Copyright © 2018 postop. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <YTKNetwork/YTKNetwork.h>

NS_ASSUME_NONNULL_BEGIN

typedef BOOL(^NetworkResponseHandleBlock)(YTKRequest *request);

typedef BOOL(^NetworkRequestHeaderFieldBlock)(YTKRequest *request);

@interface HWNetworkModule : NSObject

//服务器URL
@property (nonatomic, copy) NSString *baseUrl;

//CDN url
@property (nonatomic, copy) NSString *cdnUrl;

/**
*  单例方法
*
*  @return 单例
*/
+(instancetype)sharedInstance;


/**
 设置网络请求成功的公共处理（通过本模块调用的网络请求成功都会先执行这个block中的代码，然后根据block的BOOL类型返回值决定是否继续执行回调）

 @param handle 成功公共的处理部分
 */
-(void)setCommonSucessHandle:(NetworkResponseHandleBlock)handle;

/**
 设置网络请求失败的公共处理（通过本模块调用的网络请求失败都会先执行这个block中的代码，然后根据block的BOOL类型返回值决定是否继续执行回调）
 
 @param handle 失败公共的处理部分
 */
-(void)setCommonFailureHandle:(NetworkResponseHandleBlock)handle;


/**
 执行网络请求
 
 @param httpRequest 网络请求
 */
-(void)startRequest:(YTKRequest *)httpRequest;

/**
 执行网络请求

 @param httpRequest 网络请求
 @param success 网络请求成功的回调
 @param failure 网络请求失败的回调
 */
-(void)startRequest:(YTKRequest *)httpRequest success:(nullable YTKRequestCompletionBlock)success failure:(nullable YTKRequestCompletionBlock)failure;

@end

NS_ASSUME_NONNULL_END
